package cn.com.huzo.repository.inventory;

import cn.com.huzo.model.entities.inventory.StockInLinesEntity;
import cn.com.huzo.model.entities.inventory.StockInLinesPoLinesEntity;
import huzofw.repository.GenericRepository;
import java.util.List;

/**
 * 入库单-引入的采购订单明细数据访问对象接口。
 *
 * @author 吴旭
 */
public interface StockInLinesPoLinesRepository extends GenericRepository<StockInLinesPoLinesEntity, String> {

    /**
     * 根据所选择的采购订单，插入到货明细
     *
     * @param headerId 入库单标识
     * @param poLinesIdList 选择的订单明细标识
     * @param userId 操作者
     * @return 影响行数
     */
    Integer insert(Long headerId, List<String> poLinesIdList, Long userId);

    /**
     * 更新到货明细。
     *
     * @param itemList 要更新的数据
     * @return 影响行数
     */
    Integer update(List<StockInLinesPoLinesEntity> itemList);

    /**
     * 根据入库明细更新每款对应材料的入库数
     *
     * @param instance 正在保存更新的入库单明细数据
     * @return
     */
    Integer updateStockInQuantity(StockInLinesEntity instance);

    /**
     * 根据入库明细二次更新每款对应材料的入库数
     *
     * @param instance 正在保存更新的入库单明细数据
     * @return
     */
    Integer updateStockInQuantity02(StockInLinesEntity instance);
}
